<?php
/* * ******************************************************************************************************************************* */

// CREAR POST CAJAS PERSONALIZADAS
/* * ******************************************************************************************************************************* */
function post_cajas_personalizadas() {
    $labels = array(
        'name' => _x('Cajas', 'post type general name', 'your_text_domain'),
        'singular_name' => _x('Caja', 'post type singular name', 'your_text_domain'),
        'add_new' => _x('Añadir Caja', 'book', 'your_text_domain'),
        'add_new_item' => __('Añadir Caja', 'your_text_domain'),
        'edit_item' => __('Editar', 'your_text_domain'),
        'new_item' => __('Nuevo', 'your_text_domain'),
        'all_items' => __('Ver Todas', 'your_text_domain'),
        'view_item' => __('Ver Cajas', 'your_text_domain'),
        'search_items' => __('Buscar Caja', 'your_text_domain'),
        'not_found' => __('Esta Caja no está funcionando', 'your_text_domain'),
        'not_found_in_trash' => __('Est Caja no funciona en esta sección', 'your_text_domain'),
        'parent_item_colon' => '',
        'menu_name' => __('Cajas', 'your_text_domain')
    );


    $args = array(
        'labels' => $labels,
        'public' => true,
        'publicly_queryable' => true,
        'show_ui' => true,
        'show_in_menu' => true,
        'query_var' => true,
        'rewrite' => array('slug' => _x('caja', 'URL slug', 'your_text_domain')),
        'capability_type' => 'post',
        'has_archive' => true,
        'hierarchical' => false,
        'menu_position' => 2,
        'menu_icon' => get_template_directory_uri() . '/images/box-icon.png',
        'supports' => array('title', 'editor', 'thumbnail')
    );

    register_post_type('cajas', $args);
}

add_action('init', 'post_cajas_personalizadas');


/* * ******************************************************************************************************************************* */
// AGREGAR CAMPOS PERSONALIZADOS CAJAS
/* * ******************************************************************************************************************************* */

//Acá se agregan las funciones que guardan su caja correspondiente
add_action("admin_init", "admin_init");
add_action('save_post', 'guardar_tipo_caja');
add_action('save_post', 'guardar_cajas_pagina');
add_action('save_post', 'guardar_boton_slider');
add_action('save_post', 'guardar_caja_producto');
add_action('save_post', 'guardar_caja_contacto');
add_action('save_post', 'guardar_caja_pasos');
add_action('save_post', 'guardar_caja_promocion');
add_action('save_post', 'guardar_caja_generica');
add_action('save_post', 'guardar_caja_generica_1x1');
add_action('save_post', 'guardar_caja_generica_1x2');
add_action('save_post', 'guardar_caja_generica_2x1');
add_action('save_post', 'guardar_caja_video');
add_action('save_post', 'guardar_caja_precios_dimensiones_producto');

function admin_init() {//Agregamos los campos personalizados
//Box extras en alta de CAJAS
    add_meta_box("elegir-tipo-caja", "Elegir el tipo de Caja", "seleccionar_tipo_caja", "cajas", "normal", "high");
    add_meta_box("caja-producto", "Configurar Caja Producto", "caja_producto", "cajas", "normal", "high");
    add_meta_box("caja-contacto", "Configurar Caja Contacto", "caja_contacto", "cajas", "normal", "high");
    add_meta_box("caja-pasos", "Configurar Caja Pasos", "caja_pasos", "cajas", "normal", "high");
    add_meta_box("caja-promocion", "Configurar Caja Promoción", "caja_promocion", "cajas", "normal", "high");
    add_meta_box("caja-generica", "Configurar Caja Genérica", "caja_generica", "cajas", "normal", "high");
    add_meta_box("caja-gen1x1", "Configurar Caja Generica 1x1", "caja_generica_1x1", "cajas", "normal", "high");
    add_meta_box("caja-gen1x2", "Configurar Caja Generica 1x2", "caja_generica_1x2", "cajas", "normal", "high");
    add_meta_box("caja-gen2x1", "Configurar Caja Generica 2x1", "caja_generica_2x1", "cajas", "normal", "high");
    add_meta_box("caja-video", "Configurar Caja Video", "caja_video", "cajas", "normal", "high");
    add_meta_box("caja-precios-dimensiones-producto", "Configurar Caja de Precios y Dimensiones Producto", "caja_precios_dimensiones_producto", "cajas", "normal", "high");
}

/* * ******************************************************************************************************************************* */

// AGREGAR TIPO DE CAJA
/* * ******************************************************************************************************************************* */
function seleccionar_tipo_caja() {
    global $post;
    $custom = get_post_custom($post->ID);
    $tipo_caja = $custom["tipo_caja"][0];


//Ocultar cajas
    ?>
    <style type="text/css">
        div#caja-producto, div#caja-contacto, div#caja-pasos, div#caja-promocion, div#caja-generica, div#caja-gen1x1, div#caja-gen1x2, div#caja-gen2x1, div#caja-video, div#caja-precios-dimensiones-producto{
            display: none;
        }

    </style>


    <label>Seleccione el tipo de Caja:</label>
    <select id="tipo_caja" name="tipo_caja">
        <option selected disabled>Seleccionar...</option>
        <optgroup label="286x385">
            <?php //Caja Producto ******************************************         ?>
            <option value="caja-producto" <?php if ($tipo_caja == 'caja-producto') echo 'selected'; ?>>Producto</option>

            <?php //Caja Contacto ******************************************             ?>
            <option value="caja-contacto" <?php if ($tipo_caja == 'caja-contacto') echo 'selected'; ?>>Contacto</option>

            <?php //Caja Pasos ******************************************             ?>
            <option value="caja-pasos" <?php if ($tipo_caja == 'caja-pasos') echo 'selected'; ?>>Pasos</option>

            <?php //Caja Promoción ******************************************               ?>
            <option value="caja-promocion" <?php if ($tipo_caja == 'caja-promocion') echo 'selected'; ?>>Promoción</option>

            <?php //Caja Genérica ******************************************               ?>
            <option value="caja-generica" <?php if ($tipo_caja == 'caja-generica') echo 'selected'; ?>>Genérica Simple</option>

            <?php //Caja de Genérica 1x1 ******************************************                ?>
            <option class="editor" value="caja-gen1x1" <?php if ($tipo_caja == 'caja-gen1x1') echo 'selected'; ?>>Genérica</option>

            <?php //Caja Precios y Dimensiones Producto ******************************************              ?>
            <option value="caja-precios-dimensiones-producto" <?php if ($tipo_caja == 'caja-precios-dimensiones-producto') echo 'selected'; ?>>Precios y Dimensiones Producto</option>
        </optgroup>


        <optgroup label="286x426">
            <?php //Caja de Genérica 1x2******************************************      ?>
            <option class="editor" value="caja-gen1x2" <?php if ($tipo_caja == 'caja-gen1x2') echo 'selected' ?>>Genérica Larga</option>
        </optgroup>



        <optgroup label="584x385">
            <?php //Caja de Video ******************************************      ?>
            <option value="caja-video" <?php if ($tipo_caja == 'caja-video') echo 'selected' ?>>Video</option>
        </optgroup>




<!--        <optgroup label="584x426">
            <?php //Caja de Genérica 2x1 ******************************************       ?>
            <option class="editor" value="caja-gen2x2" <?php // if ($tipo_caja == 'caja-gen2x2') echo 'selected'; ?>>Genérica</option>
        </optgroup>-->
    </select>

    <?php
}

// Estos son los inserts de los campos
function guardar_tipo_caja() {
    global $post;
    //update_post_meta($post->ID, "tipo_caja", $_POST["tipo_caja"]);

    $custom = get_post_custom($post->ID);

    $datos = array(
        array('nombre' => "tipo_caja", 'old' => $custom["tipo_caja"][0], 'new' => $_POST["tipo_caja"])
    );

    foreach ($datos as $dato) {

        if ($dato['new'] && $dato['new'] != $dato['old']) {
            update_post_meta($post->ID, $dato['nombre'], $dato['new']);
        } elseif ('' == $dato['new'] && $dato['old']) {
            delete_post_meta($post->ID, $dato['nombre'], $dato['old']);
        }
    }
}

/* * ******************************************************************************************************************************* */

// Obtener todas las cajas para mostrarlas en el theme
/* * ******************************************************************************************************************************* */

function obtener_cajas($ids) {
    foreach ($ids as $id) {

        if ($id == 'caja-precios-general' || $id == 'caja-opciones-envio' || $id == 'caja-ideas' || $id == 'caja-productos-aleatorios') {
            $tipo_caja = $id;
        } else {
            //Obtengo el tipo de caja
            $custom = get_post_custom($id);
            $tipo_caja = $custom["tipo_caja"][0];
        }

        switch ($tipo_caja) {
            case 'caja-producto' :
                mostrar_caja_producto($id);

                break;

            case 'caja-contacto' :
                mostrar_caja_contacto($id);

                break;

            case 'caja-pasos' :
                mostrar_caja_pasos($id);

                break;

            case 'caja-promocion' :
                mostrar_caja_promocion($id);

                break;

            case 'caja-generica' :
                mostrar_caja_generica($id);

                break;

            case 'caja-video' :
                mostrar_caja_video($id);

                break;

            case 'caja-gen1x1' :
                mostrar_caja_generica_1x1($id);

                break;

            case 'caja-gen1x2' :
                mostrar_caja_generica_1x2($id);

                break;

            case 'caja-gen2x2' :
                mostrar_caja_generica_2x1($id);

                break;
            case 'caja-precios-general' :
                mostrar_caja_precios_general();

                break;
            case 'caja-opciones-envio' :
                mostrar_caja_opciones_envio();

                break;
            case 'caja-precios-dimensiones-producto' :
                mostrar_caja_precios_dimensiones_producto($id);

                break;
            case 'caja-ideas' :
                mostrar_caja_ideas();

                break;
            case 'caja-productos-aleatorios' :
                mostrar_caja_productos_aleatorios();

                break;
        }
    }
}

/* * ******************************************************************************************************************************* */

// Mostrar todas las cajas cargadas
/* * ******************************************************************************************************************************* */
function seleccionar_cajas($tamanio, $tipo, $caja, $i) {
    ?>
    <label><strong>Tamaño de Caja:</strong></label><br>
    <select class="select-tamanios-cajas" name="select-tamanios-cajas<?php echo '[' . $i . ']'; ?>" style="width: 220px; margin-bottom: 20px;">
        <option value="0">Seleccionar...</option>
        <option value="1" <?php if ($tamanio == 1) echo 'selected'; ?>>286x385</option>
        <option value="2" <?php if ($tamanio == 2) echo 'selected'; ?>>286x426</option>
        <option value="3" <?php if ($tamanio == 3) echo 'selected'; ?>>584x385</option>
        <option value="4" <?php if ($tamanio == 4) echo 'selected'; ?>>584x426</option>
        <option value="5" <?php if ($tamanio == 5) echo 'selected'; ?>>900x385</option>
    </select>
    <br/>

    <label><strong>Tipo de Caja:</strong></label><br>
    <select class="select-tipos-cajas" name="select-tipos-cajas<?php echo '[' . $i . ']'; ?>" style="width: 220px; margin-bottom: 20px;">
        <?php cargar_select_tipos_cajas_ajax($tamanio, $tipo); ?>
    </select><div class="control-combo-tipos" style="display: none; left: 250px; position: absolute; top: 143px;"><img src="<?php bloginfo('url'); ?>/wp-admin/images/wpspin_light.gif" alt="mensaje loader"/></div>
    <br/>

    <label><strong>Caja:</strong></label><br>
    <select class="select-cajas" name="select-cajas<?php echo '[' . $i . ']'; ?>" style="width: 220px;">
        <?php cargar_select_cajas_ajax($tipo, $caja); ?>
    </select><div class="control-combo-cajas" style="display: none; left: 250px; position: absolute; top: 206px;"><img src="<?php bloginfo('url'); ?>/wp-admin/images/wpspin_light.gif" alt="mensaje loader"/></div>
    <?php
}

add_action('wp_ajax_cargar_select_tipos_cajas', 'cargar_select_tipos_cajas_ajax');

function cargar_select_tipos_cajas_ajax($tamanio, $tipo_caja) {
    if ($_POST['tamanio']) {
        $tamanio = $_POST['tamanio'];
    }
    ?> <option value="0">Seleccionar..</option><?php
    if ($tamanio == 1) {//PARA CAJAS DE TAMAÑO 286x385
        ?>
            <?php //Caja Producto ******************************************        ?>
        <option value="caja-producto" <?php if ($tipo_caja == 'caja-producto') echo 'selected'; ?>>Producto</option>

        <?php //Caja Contacto ******************************************              ?>
        <option value="caja-contacto" <?php if ($tipo_caja == 'caja-contacto') echo 'selected'; ?>>Contacto</option>

        <?php //Caja Pasos ******************************************               ?>
        <option value="caja-pasos" <?php if ($tipo_caja == 'caja-pasos') echo 'selected'; ?>>Pasos</option>

        <?php //Caja Promocion ******************************************                 ?>
        <option value="caja-promocion" <?php if ($tipo_caja == 'caja-promocion') echo 'selected'; ?>>Promoción</option>

        <?php //Caja Genérica ******************************************                 ?>
        <option value="caja-generica" <?php if ($tipo_caja == 'caja-generica') echo 'selected'; ?>>Genérica Simple</option>

        <?php //Caja de Genérica 1x1 ******************************************                  ?>
        <option class="editor" value="caja-gen1x1" <?php if ($tipo_caja == 'caja-gen1x1') echo 'selected'; ?>>Genérica</option>

        <?php //Caja Precios y Dimensiones Producto ******************************************                ?>
        <option value="caja-precios-dimensiones-producto" <?php if ($tipo_caja == 'caja-precios-dimensiones-producto') echo 'selected'; ?>>Precios y Dimensiones Producto</option>

        <?php //Cajas FIJAS ******************************************                ?>
        <option value="cajas-fijas" <?php if ($tipo_caja == 'cajas-fijas') echo 'selected'; ?>>Cajas Fijas</option>



    <?php }elseif ($tamanio == 2) { //PARA CAJAS DE TAMAÑO 286x426         ?>
        <?php //Caja de Genérica 1x2 ******************************************                ?>
        <option class="editor" value="caja-gen1x2" <?php if ($tipo_caja == 'caja-gen1x2') echo 'selected'; ?>>Genérica</option>



    <?php } elseif ($tamanio == 3) { //PARA CAJAS DE TAMAÑO 584x385         ?>
        <?php //Caja de Video ******************************************               ?>
        <option value="caja-video" <?php if ($tipo_caja == 'caja-video') echo 'selected' ?>>Video</option>



    <?php } elseif ($tamanio == 4) { //PARA CAJAS DE TAMAÑO 584x426         ?>
        <?php //Caja de Genérica 2x2 ******************************************               ?>
        <option class="editor" value="caja-gen2x2" <?php if ($tipo_caja == 'caja-gen2x2') echo 'selected'; ?>>Genérica</option>

        <?php //Cajas FIJAS ******************************************                ?>
        <option value="cajas-fijas-2x2" <?php if ($tipo_caja == 'cajas-fijas-2x2') echo 'selected'; ?>>Cajas Fijas</option>



    <?php }elseif ($tamanio == 5) { //PARA CAJAS DE TAMAÑO 900x385          ?>
        <?php //Cajas FIJAS 900x385******************************************               ?>
        <option value="cajas-fijas-900x385" <?php if ($tipo_caja == 'cajas-fijas-900x385') echo 'selected'; ?>>Cajas Fijas</option>
        <?php
    }



    if ($_POST['tamanio']) {
        die();
    }
}

add_action('wp_ajax_cargar_select_cajas', 'cargar_select_cajas_ajax');

function cargar_select_cajas_ajax($tipo_caja, $caja) {
    if ($_POST['tipo_caja']) {
        $tipo_caja = $_POST['tipo_caja'];
    }
    ?> <option value="0">Seleccionar..</option><?php
    if ($tipo_caja == 'cajas-fijas') {
        ?>

        <?php //Caja Precios General ******************************************   ?>
        <option value="caja-precios-general" <?php if ($caja == 'caja-precios-general') echo 'selected'; ?>>Precios General</option>

        <?php //Caja Opciones de Envío ******************************************              ?>
        <option value="caja-opciones-envio" <?php if ($caja == 'caja-opciones-envio') echo 'selected'; ?>>Opciones de Envío</option>



    <?php }elseif ($tipo_caja == 'cajas-fijas-2x2') { ?>
        <?php //Caja de Ideas ******************************************       ?>
        <option class="editor" value="caja-ideas" <?php if ($caja == 'caja-ideas') echo 'selected'; ?>>Caja de Ideas</option>





    <?php }elseif ($tipo_caja == 'cajas-fijas-900x385') { ?>
        <?php //Caja de Productos Aleatorios ******************************************       ?>
        <option class="editor" value="caja-productos-aleatorios" <?php if ($caja == 'caja-productos-aleatorios') echo 'selected'; ?>>Productos Aleatorios</option>
        <?php
    } else {
        query_posts("post_type=cajas&posts_per_page=-1");

        while (have_posts()) : the_post();

            $custom = get_post_custom(get_the_ID());
            $tipo = $custom["tipo_caja"][0];

            if ($tipo == $tipo_caja) {
                ?>
                <option value="<?php the_ID(); ?>" <?php if ($caja == get_the_ID()) echo 'selected'; ?>><?php the_title(); ?></option>
                <?php
            }

        endwhile;
    }

    //echo '<option value="">'.get_the_ID().' -- '.$tipo_caja.'</option>';
    if ($_POST['tipo_caja']) {
        die();
    }
}

function textoAyuda($label) {

    $onblur = 'onblur="this.value=(this.value==' . "''" . ') ? ' . "'" . $label . "'" . ' : this.value;"';
    $onfocus = 'onfocus="this.value=(this.value==' . "'" . $label . "'" . ') ? ' . "''" . ' : this.value;"';
    $value = 'value="' . $label . '"';

    echo $onblur . ' ' . $onfocus . ' ' . $value;
}

function botonEditar() {
    ?>
    <span class="boton-editar" style="margin-right: 7px;">
        <a  title="Editar" href="<?php bloginfo('url') ?>/wp-admin/post.php">Editar</a>
    </span>
    <?php
}

include_once 'cajas/caja_producto.php';
include_once 'cajas/caja_productos_aleatorios.php';
include_once 'cajas/caja_contacto.php';
include_once 'cajas/caja_pasos.php';
include_once 'cajas/caja_generica.php';
include_once 'cajas/caja_video.php';
include_once 'cajas/caja_promocion.php';
include_once 'cajas/caja_generica1x1.php';
include_once 'cajas/caja_generica1x2.php';
include_once 'cajas/caja_generica2x1.php';
include_once 'cajas/caja_precios_general.php';
include_once 'cajas/caja_opciones_envio.php';
include_once 'cajas/caja_precios_dimensiones_productos.php';
include_once 'cajas/caja_ideas.php';
?>
